// 叉积应用 线线关系
// 测试链接 ：http://poj.org/problem?id=2653
// 相关帖子 ：https://www.cnblogs.com/dx123/p/17156550.html
// 提交以下的code，可以直接通过

#include <cstdio>
#include <cstring>
#include <cmath>

using namespace std;

const int MAXN = 100005;
struct Point
{
    double x, y;
}a[MAXN], b[MAXN];
int n, ans[MAXN], cnt;

double cross(Point& a, Point& b, Point& c)
{
    return (b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x);
}

// 返回线段 i 和线段 j 是否相交
bool intersect(int i, int j)
{
    if(cross(a[i], b[i], a[j]) * cross(a[i], b[i], b[j]) > 0) return false;
    if(cross(a[j], b[j], a[i]) * cross(a[j], b[j], b[i]) > 0) return false;
    return true;
}

void compute()
{
    printf("Top sticks: ");
    cnt = 0;
    for(int i = 1; i <= n; ++i) // 枚举棍子 i
    {
        bool flag = false;
        for(int j = i + 1; j <= n; ++j) // 枚举棍子 j
        {
            if(intersect(i, j))
            {
                flag = true;
                break;
            }
        }
        if(!flag) ans[++cnt] = i;
    }
    for(int i = 1; i < cnt; ++i) printf("%d, ", ans[i]);
    printf("%d", ans[cnt]);
    puts(".");
}

int main()
{
    while(~scanf("%d", &n) && n)
    {
        for(int i = 1; i <= n; ++i)
        {
            scanf("%lf%lf%lf%lf", &a[i].x, &a[i].y, &b[i].x, &b[i].y);
        }
        compute();
    }

    return 0;
}